﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Follow.Relatorios
{
    public partial class RelatorioVisitas : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (Session["idUsuario"] == null)
                {
                    Response.Redirect("../Default.aspx");
                }
                else
                {
                    Common.ValidaPermissoes valida = new Common.ValidaPermissoes();
                    bool possuiPermissao = valida.validaPermissaoPorTela("Relatório de Visitas", Convert.ToInt32(Session["idGrupoUsuario"]));

                    if (possuiPermissao == false)
                    {
                        Response.Redirect("../permissaoNegada.aspx");
                    }
                    else
                    {
                        ddlMes.SelectedValue = DateTime.Now.Month.ToString();
                        ddlAno.SelectedValue = DateTime.Now.Year.ToString();

                        PopulaGrafico();
                    }
                }
            }
        }

        protected void btnBuscar_Click(object sender, EventArgs e)
        {
            PopulaGrafico();
        }

        private void PopulaGrafico()
        {
            Business.RelatorioVisitasBO bo = new Business.RelatorioVisitasBO();

            IList<Model.RelatorioVisitas> lst = new List<Model.RelatorioVisitas>();

            lst = bo.findAll(ddlMes.SelectedValue, ddlAno.SelectedValue);

            if (lst.Count > 0)
            {
                HttpContext context = HttpContext.Current;
                Page page = (Page)context.Handler;
                Literal litScript = new Literal();
                System.Text.StringBuilder GoogleGraficos = new System.Text.StringBuilder();

                GoogleGraficos.Append("<script type=\"text/javascript\" src=\"https://www.google.com/jsapi\"></script>");
                GoogleGraficos.Append("<script type=\"text/javascript\">");
                GoogleGraficos.Append("google.load(\"visualization\", \"1\", {packages:[\"corechart\"]});");
                GoogleGraficos.Append("google.setOnLoadCallback(drawChart);");
                GoogleGraficos.Append("function drawChart() {");
                GoogleGraficos.Append(" var data = google.visualization.arrayToDataTable([");
                GoogleGraficos.Append("['Funcionario', 'Quantidade'],");

                String Parametros = "";
                foreach (Model.RelatorioVisitas item in lst)
                {

                    Parametros += "['" + item.NomeFuncionario
                                   + "', " + item.QuantidadeVisita.ToString() + "],";
                }

                Parametros = Parametros.Substring(0, Parametros.LastIndexOf(","));

                GoogleGraficos.Append(Parametros);
                GoogleGraficos.Append("]);");

                GoogleGraficos.Append(" var options = {");
                GoogleGraficos.Append("title: 'Visitas por Funcionários',");
                GoogleGraficos.Append("hAxis: {title: 'Funcionários', titleTextStyle: {color: 'black'}},");
                GoogleGraficos.Append("legend:{position: 'right', textStyle: {color: 'black', fontSize: 13}},");
                GoogleGraficos.Append("colors:['#67c315','#efdf28','#d69f50','#0d9398','#98230d','#2873ef']");
                GoogleGraficos.Append("};");


                GoogleGraficos.Append("var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));");
                GoogleGraficos.Append(" chart.draw(data, options);}</script>");

                litScript.Text = GoogleGraficos.ToString();
                page.Header.Controls.Add(litScript);

            }
        }
    }
}